test_awm_m11p_abi_sources = [
  '../../../../main.cpp',
  'test_awm_m11p_abi.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_abi.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_card.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_gpu.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_memory.cpp',
]

test_awm_m11p_gpu_sources = [
  '../../../../main.cpp',
  'test_awm_m11p_gpu.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_gpu.cpp',
]

test_awm_m11p_memory_sources = [
  '../../../../main.cpp',
  'test_awm_m11p_memory.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_memory.cpp',
]

test_awm_m11p_card_sources = [
  '../../../../main.cpp',
  'test_awm_m11p_card.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_card.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_gpu.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/awm_m11p/awm_m11p_memory.cpp',
]

incs = [
  include_directories('.'),
  include_directories('../../..'),
  include_directories('../../../../..'),
  include_directories('../../../../../drivers'),
  include_directories('../../../../../include'),
  include_directories('../../../../../gen'),
  include_directories('../../../../../drivers/pcie_gpu_card/innosilicon'),
]

innosilicon_interface_srcs = [
  '../../../../../drivers/pcie_gpu_card/innosilicon/interface/gpu/power.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/interface/gpu/status.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/interface/gpu.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/interface/memory.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/interface/pcie_card.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/interface/pcie_device.cpp',
  '../../../../../drivers/pcie_gpu_card/innosilicon/interface/processor.cpp',
]

test_awm_m11p_abi = executable(
  'test_awm_m11p_abi',
  test_awm_m11p_abi_sources,
  innosilicon_interface_srcs,
  include_directories: incs,
  dependencies: [
    gtest_dep,
    test_utilities_dep,
    test_utils_dep,
    libmcpp_deps,
    dev_deps,
  ],
  install: false,
)

test_awm_m11p_gpu = executable(
  'test_awm_m11p_gpu',
  test_awm_m11p_gpu_sources,
  innosilicon_interface_srcs,
  include_directories: incs,
  dependencies: [
    gtest_dep,
    test_utilities_dep,
    test_utils_dep,
    libmcpp_deps,
    dev_deps,
  ],
  install: false,
)

test_awm_m11p_memory = executable(
  'test_awm_m11p_memory',
  test_awm_m11p_memory_sources,
  innosilicon_interface_srcs,
  include_directories: incs,
  dependencies: [
    gtest_dep,
    test_utilities_dep,
    test_utils_dep,
    libmcpp_deps,
    dev_deps,
  ],
  install: false,
)

test_awm_m11p_card = executable(
  'test_awm_m11p_card',
  test_awm_m11p_card_sources,
  innosilicon_interface_srcs,
  include_directories: incs,
  dependencies: [
    gtest_dep,
    test_utilities_dep,
    test_utils_dep,
    libmcpp_deps,
    dev_deps,
  ],
  install: false,
)

test('test_awm_m11p_abi', test_awm_m11p_abi, timeout: 180, suite: 'awm_m11p')
test('test_awm_m11p_gpu', test_awm_m11p_gpu, timeout: 180, suite: 'awm_m11p')
test('test_awm_m11p_memory', test_awm_m11p_memory, timeout: 180, suite: 'awm_m11p')
test('test_awm_m11p_card', test_awm_m11p_card, timeout: 180, suite: 'awm_m11p')


